Markup languages including eXtensible Markup Language (XML) are known. XML is referred to as extensible because it does not have a fixed form like some other markup languages, e.g., HTML. XML comprises a set of rules that determine how to compose other markup languages.
A document that conforms to XML rules is an XML document. XML documents follow a tree structure that comprises of a set of hierarchically arranged nodes including a single top level node that contains all other nodes. Each node is marked by tags of the form <node>node body </node>. If a node does not have a body, it may also be written as <node/>. A node may have one or more attributes: <node attr1=“first attribute” attr2=“second attribute”/>. Attributes are enclosed in quotes and preferably do not contain certain characters such as quotes, “<”, “>” and “&”.
The Extensible Stylesheet Language (XSL) is a language used to write stylesheets that can transform XML documents into other XML documents or into plain text. An XSL processor provides a mechanism for navigating through the nodes of an XML document and for applying certain transformations to them. These transformations are specified in a markup language that adheres to the XML syntax. XSL can be applied to any kind of XML-based markup, even to XSL itself. XSL also enables the use of scripts. Scripts are programs that can provide additional functionality that may not be possible with the standard XSL elements.
Recently markup languages have been adapted to enable systems to communicate using voice enabled devices. In such systems, the markup language may provide a call structure to a dialog between a user and the automated voice information delivery system. The elements of the markup language provide the structure and content for a meaningful dialog. In many such systems, however, the responses by the user are only enabled through manually activated inputs on a user's terminal device, such as a keypad of a telephone. Many users prefer to interact with a telephone device via voice commands, particularly in view of the trend in the law towards “hands-free” mobile telephony devices.
Interpreting voice responses is a challenge for voice-based technology due to different inflections, tones, accents, speech patterns, volumes and many other speech variables. Most voice-based systems limit responses to select choices (e.g., say “one” for one, “two” for two, etc.). These systems do not provide for free-flowing logic. Moreover, in such systems, the manner of interpreting voice commands is often coded into the system without much flexibility.